Computer systems generally comprise physical devices including a processing unit, a memory device, a monitor and input-output devices such as a keyboard and a mouse. Computer systems are utilized by users to perform specific tasks or to solve specific problems. Typically, the computer system is programmed to perform these tasks or solve these problems. Such a program is referred to as an application program. Examples of common application programs include word processing programs, data base programs, spread sheet programs, and graphics programs. Application programs, as well as carrying out the programmed function of the application, also provide the user with an interface to enable the user of the application program to communicate with the program. The interface of an application program allows a user to give commands to execute the program's instructions (for example, to underline a word or plot a graph) and to interact with the computer system's operating system (for example, to retrieve a file from memory).
Thus, application programs run in conjunction with the computer system's operating system. The operating system is a program to control the operation of the computer's physical devices. For example, the operating system determines where in memory a piece of information is to be stored, coordinates the sending of information to a printer to be printed, and commences the operation of an application program. Operating systems also provide the user with an interface to communicate with the operating system. Commonly, the operating system's interface is a command line on the computer's monitor where the user can enter an instruction from the operating system's instruction set.
The instruction set usually contains simple instructions to manipulate memory, control peripheral devices and run applications programs. For example, operating systems often have instructions that allow the user to do such things as display the contents of a memory device on a computer screen, delete items of information from a memory device, place items of information in a memory device, organize the information stored in a memory device into simple structures such as hierarchical directories, run application programs and have information printed. A common operating system for personal computers is the MS-DOS operating system (Microsoft Disk Operating System).
Users often find such operating systems difficult to use. The types of commands available are few and unsophisticated. Commands are often abbreviated words, making it difficult for users to remember what a command does and when to use it. Additionally, the user has limited methods to store and structure the user's information in the memory device and limited ways of identifying (or naming) such information. The methods used to store the information are often not user friendly and the data structures in which the information is stored are difficult to manipulate.
The user's information, stored in a memory device, such as a hard disk drive, is often represented by less than meaningful names identifying that information. For example, in the MS-DOS operating system a user's information is stored as a file of information, and that file is identified by a string of up to eight characters followed by a period followed by three characters representing the type of information stored. A typical file identifier in the MS-DOS operating system would thus be "Leonlet.doc", where the first part of the file name is an identifier selected by the user and the second part of the file name identifies the type of file and is generally determined by the operating system or application program. In the example above, the second part of the file name identifies the file as a word processing document.
When using such cryptic file identifiers, many users find it difficult to remember in which file a particular piece of information is stored. The file identifier gives little information to the user about the kind of information stored in the file. Further, the `dot convention` used in identifying MS-DOS operating system files is unfamiliar to most users, who do not understand what each suffix in the file identifier means. Others operating systems have equally cryptic file naming conventions. It should be noted that application programs are named and stored by the operating system using the same conventions. The file name for the Wordperfect brand word processor application program, for example, is "WP.EXE". This file stores the code for the Wordperfect application program. Additionally, the file name is used as an operating system command to execute that application program.
A further problem user's find when interfacing with an operating system is the way the operating system allows the user to structure stored information. To enable a user to retrieve a file from memory and to provide additional information about the contents of a file (apart from the information given by the file name), operating systems often allow a user to structure the way the files are stored. It is common to provide users with the ability to create directories and subdirectories so that files of information can be grouped in storage with related information.
For example, a user may decide that a directory called "customer" and another directory called "vendors" is desirable. The user can create those directories and then "put" files in those directories. By "putting" a file in a directory, the user is in effect enlarging the filename for the file. For example, the identifier for a file called "address.wrd" stored in the "vendors" directory would be "c: vendors address.wrd." (The "c" at the beginning of the file name specifies in which storage device the file is stored.) If subdirectories are used, the file name is even more complex. Although providing the user with more information about a file (i.e. that the addresses filed stores the addresses of the user's vendors), the notation used is difficult for inexperienced users to understand. When identifying a file, the user must generally give the full name of the file, thus requiring the user to remember in which directory and subdirectory the file is placed. However, when many files have been stored in a memory device, each with such a cryptic name, it is difficult to locate the desired file and to determine the contents of the various files.
Further, users are given no help in determining what directories and subdirectories are needed, in creating the directories structure and in deciding which files should be placed in which subdirectory. Many users, finding the process of creating directories and placing files in directories too complex, do not bother to use the operating system's directory features. Accessing and creating different directories and subdirectories is clumsy, using meaningless commands such as "cd . . .". When a list of files is displayed, all files are displayed at the one level. The hierarchical directory structure is not explicit in such a listing of files. The notation used in the directory structure, moreover, consists of a series of directory names and file identifiers joined by "/" and ":" characters. Such notation does not relate to the user's real world environment.
To overcome the problem that inexperienced users find when communicating with an operating system program, other programs have been written to provide an easier user interface that performs operating systems functions. The most successful of these advanced operating systems is Microsoft's Windows brand program that provides a graphical user interface for the MS-DOS operating system. Windows is a shell program that converts the MS-DOS operating system environment into a graphical environment. Functions such as "save," "copy," "create directory," "run a program," and the like are simplified by giving the user a graphical interface which the user can operate by means of a cursor on the monitor moved by a physical device such as a mouse. The user's commands from the graphical interface are converted into MS-DOS operating system commands by the Windows program. The program is easy to learn and simple to use. The user needs no knowledge of the difficult MS-DOS operating system conventions and commands. A further advantage of the Windows system is that it offers a standard interface that can be used by various application programs. Application programs can be written to take advantage of the Windows program so that the user sees and operates the same Windows graphical interface for each application program used. In that way, the user can use one series of "graphical commands" for both the operating system and all application programs.
For example, the graphical user interface of the Windows program allows a user to access files stored in memory from both an application program or from an operating system screen using the same command. At the top of each screen on the computer's monitor is a menu bar giving groups of possible commands. When the cursor is placed up on the word "file" on the menu bar and the button on the mouse is activated, different file command options such as "open," "new," "save," and "exit" are displayed below the word "file" on the menu bar. By moving the mouse so that cursor is placed on the required command, which is highlighted, the user can activate a button on the mouse to select that command. In this way, the user does not need to learn difficult MS-DOS operating system command abbreviations because all possible commands are displayed in natural language in the menu. In addition, the same operating system functions can be accessed from various application programs using the same method.
However, software utilizing the Windows program or other graphical user interfaces are limited by the underlying operating system. For example, the Windows program operating under the MS-DOS operating system is limited by certain characteristics of the MS-DOS operating system. Even though file manipulation functions such as "new," "open," "close," "save" and "save as" are presented to the user in a graphical way, the file identifiers used in conjunction with these commands are still the dot notation identifiers of the MS-DOS operating system. The Windows program graphical user interface makes it easier for the user to activate file manipulation commands, but the names used to identify the files are still those that are used by the MS-DOS operating system.
For example, when the user selects the "open" command from the Windows program, a box appears on the screen listing a mixture of MS-DOS operating system files and directories in no particular order or structure. The user is able to open one of these files by placing the cursor on the file name and activating a button on the mouse. The directory structure is not graphically displayed on the screen. The listing just shows a mixture of directories and files, not giving any information about the contents of these directories or files apart from that of the cryptic MS-DOS operating system file identifier. Even though the graphical user interface of the Windows program is based on the principal that commands should be based on actions manipulating graphical worldly metaphors rather than entering cryptic commands, the file names and retrieval operations presented to the user do not create an environment molded to match the user's physical world.
The Windows program does not provide an easy to use tool to create a meaningful real world based file storage structure. For example, a user who wishes to save a document in a file is given no help as to how to name the file, is limited as to the format of the file's name, and is not encouraged to place the file in a relevant directory. More troublesome, the user cannot create a directory using the Windows program from an application program, as explained below. Further, properly arranging the secondary memory into a meaningful directory structure using the file manager programs currently provided by operating systems, such as the MS Windows File Manager program, is a lengthy manual process which requires a good operating knowledge of the operating system. This presents a difficult and challenging task for a novice user. Most users will end up working with a disorganized data and file structure.
This situation results in nonefficient management of secondary memory, creating serious difficulties for the user in retrieving and storing files. As more and more files are stored on the computer, secondary memory becomes cluttered with unrecognizable documents and misleading file directories. Extensive (and expensive) disk space will be occupied by files that the user does not know the contents or relevance of, and which may be obsolete, reducing the efficient use of the computer as a file storage device.
When a user is operating the computer from the operating system level, a common requirement is to locate a file of data, open that file and operate upon it using an application program. Interfaces such as those of the MS-DOS operating system and the Windows program do not help users find the required file. All that is provided to the user is a list of almost meaningless file names. The contents of each file is a mystery to the user until the file is opened. Thus, to locate a relevant file, the user must look at a list of meaningless file names, and open each file in conjunction with the respective application program until the right file is located. When many files are involved, this is a time consuming process. No information, apart from the file name, length of the file and date of first creation is presented to the user about a file when examining the contents of a memory device.
A further problem encountered by users is using an operating system's file management techniques from inside an application program. Once the application program is in use, manipulation of the file structure is very difficult. Even sophisticated graphical user interface programs operating in conjunction with application programs do not allow users to create directories and delete groups of files or directories while inside the application program. For example, if a user is using a word processing program and decides to save the document but the directory the user wishes to save the document in has not been created, the user is unable to both create a new directory and save the document without leaving the word processing application program. In addition, if the user wishes to delete a directory and all the files of information stored within that directory, the user must delete each file individually and then leave the application program to delete the directory.
Not all computers, of course, have the same graphical user interface. A user can save a file on a secondary storage device, such as a floppy disk, and move that file ("the exported file") to another computer that does not use the same interface. As yet, no program has allowed users to automatically transfer, along with the exported file, a file containing information about the exported file. When on another computer system, the only information about the exported file transferred to this system is the minimal information supplied by operating system.